#include <iostream>

class A {
public:
  A(int i = 0) {
    m = i;
    std::cout << "cc" << m << std::endl;
  }
  void Print() const { std::cout << m << std::endl; }
  void operator=(const A &a) {
    std::cout << "op" << m << std::endl;
    this->m = a.m;
  }
  virtual ~A() { std::cout << "dc" << m << std::endl; }

private:
  int m;
};

int main() {
  A my;
  my = A(5);
  my.Print();
}